  10 :RETURN ;CLEAR ;NT=0
  15 BC=25;FC=36
  20 P=-1;T=21;V=0
  30 GOSUB 4000
  40 S=5
  45 GOTO 50
  50 X=RND (160)-80
  60 Y=RND (20)+20
  70 P=P+2
  80 @(P)=X
  90 @(P+1)=Y
 100 T=T-1
 110 IF T>1PRINT "YOU HAVE",#3,T," TORPEDOES LEFT"
 112 IF T=1PRINT "ONLY 1 TORPEDO LEFT!!!"
 115 IF T<0PRINT "RED ALERT!";GOTO 1000
 120 IF T=0PRINT "ALL TORPEDOES GONE!";GOTO 1000
 125 IF T<20IF T>0PRINT "LAST 'X' COORDINATE =",#3,E
 126 IF T<20IF T>0PRINT "LAST 'Y' COORDINATE =",#3,D
 130 O=CY
 131 PRINT "'X' COORDINATE?",
 132 CY=O;CX=48
 133 G=KN(1)÷3
 134 PRINT #1,G
 135 IF TR(1)GOTO 139
 136 GOTO 132
 139 IF TR(1)GOTO 139
 140 CY=O;PRINT "'Y' COORDINATE?",
 142 CY=O;CX=48
 143 D=KN(1)÷3
 144 PRINT #1,D
 145 IF TR(1)GOTO 180
 146 GOTO 142
 180 E=G;B=X-G;C=Y-D;B=B×B+C×C;H=A;A=0
 185 A=A+1
 190 J=B-A×A
 200 IF J>0GOTO 185
 210 A=(A-1)×100
 211 CLEAR 
 215 IF T<20IF H<5000PRINT "LAST SHOT",#5,H," METERS AWAY"
 217 IF T<20IF H>5000PRINT "LAST SHOT OUT OF RANGE!"
 310 IF A>5000PRINT "SUB IS OUT OF RANGE";GOTO 1000
 320 PRINT "THIS SHOT WAS",#5,A," AWAY!"
 330 IF A>1000GOTO 1000
 340 IF A>500GOTO 2000
 350 IF A>100GOTO 3000
 360 IF A<101PRINT "THE SUB HAS BEEN SUNK"
 370 FOR Z=1TO 500
 380 NEXT Z
 390 GOTO 5000
1000 IF V>0V=0
1010 IF T>-1PRINT "SUB IS HEADING FOR YOU!"
1020 IF X>0X=X-S
1030 IF X<0X=X+S
1040 IF X<-80X=-80
1050 IF X>80X=80
1060 Y=Y-S
1070 IF Y<-40GOTO 1110
1100 GOTO 70
1110 PRINT "YOU HAVE BEEN SUNK"
1120 GOTO 370
2000 PRINT "SUB HAS VEERED 45'"
2010 IF S>2PRINT "SUB HAS REDUCED SPEED!"
2020 S=S-1
2030 IF S<2S=2
2040 V=V+1
2050 IF V=5PRINT "SUB HAS MOVED TO A NEW    LOCATION";GOTO 45
2060 IF X<H X=X-S
2070 IF X>H X=X+S
2080 GOTO 1040
3000 Y=Y+5
3010 PRINT "SUB HAS BEEN DAMAGED, AND HAS TURNED 180'"
3020 GOTO 2060
4000 BOX 0,0,160,1,1
4010 BOX 0,0,1,88,1
4020 CX=-50;CY=20
4030 PRINT "-X,Y"
4040 CX=30;CY=20
4050 PRINT "X,Y"
4060 CX=-50;CY=-20
4070 PRINT "-X,-Y"
4080 CX=30;CY=-20
4090 PRINT "X,-Y"
4096 PRINT "SUB STARTS SOMEWHERE ABOVE'Y' = 20"
4098 PRINT "'X' = -80 TO 80"
4100 FOR Z=1TO 3000
4110 NEXT Z
4120 CLEAR 
4130 RETURN 
5000 CLEAR 
5010 LINE @(1),@(2),2
5020 FOR Z=3TO P+1STEP 2
5030 LINE @(Z),@(Z+1),1
5040 NEXT Z
5050 BOX @(Z-2),@(Z-1),3,3,3
5060 BOX 0,0,1,80,1
5070 BOX 0,-43,160,1,1
5080 IF TR(1)GOTO 10
5090 GOTO 5080
RUN 
